Multi-query Transactions এবং Error Handling গাইড ও নোট

Database Tutorials - পিএইচপি মাইএসকিউএল আই (PHP MySQL) - Transactions এবং Data Consistency
255

পিএইচপি (PHP) এবং মাইএসকিউএল (MySQL) ব্যবহার করে একাধিক কোয়েরি একসাথে একযোগে চালানোর জন্য মাল্টি-কোয়েরি ট্রানজ্যাকশন ব্যবহার করা হয়। এই পদ্ধতিতে একাধিক SQL স্টেটমেন্ট (Queries) একই ট্রানজ্যাকশনে একত্রে এক্সিকিউট করা সম্ভব হয়। এতে করে অ্যাপ্লিকেশনগুলো দ্রুত কাজ করে এবং ট্রানজেকশন কোডের মধ্যে ত্রুটি দেখা দিলে সমস্ত পরিবর্তন রোলব্যাক করা যায়, যাতে ডেটাবেসের অখণ্ডতা বজায় থাকে।

মাল্টি-কোয়েরি ট্রানজ্যাকশন কী?

মাল্টি-কোয়েরি ট্রানজ্যাকশন (Multi-query Transaction) হল একটি পদ্ধতি যেখানে একাধিক SQL কোয়েরি একসাথে একযোগে প্রক্রিয়াকৃত হয়। যখন একাধিক SQL স্টেটমেন্ট বা কোয়েরি একসাথে এক্সিকিউট করতে হয় এবং যদি কোনও একটি কোয়েরি ব্যর্থ হয়, তাহলে ট্রানজ্যাকশনটি সম্পূর্ণভাবে রোলব্যাক করা হয়। এর মাধ্যমে ডেটাবেসে অর্ধেক পরিবর্তন থেকে রক্ষা পাওয়া যায়।

পিএইচপি এবং মাইএসকিউএল ব্যবহার করে মাল্টি-কোয়েরি ট্রানজ্যাকশন বাস্তবায়ন

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// MySQL connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

// Start transaction
$conn->begin_transaction();

try {
  // Execute multiple queries
  $conn->query("INSERT INTO table1 (column1, column2) VALUES ('value1', 'value2')");
  $conn->query("INSERT INTO table2 (column1, column2) VALUES ('value3', 'value4')");
  
  // Commit transaction
  $conn->commit();
  echo "Transaction successfully completed";
} catch (Exception $e) {
  // Rollback transaction in case of error
  $conn->rollback();
  echo "Error: " . $e->getMessage();
}

// Close connection
$conn->close();
?>

এরর হ্যান্ডলিং (Error Handling)

মাল্টি-কোয়েরি ট্রানজ্যাকশনের সময় ত্রুটি হ্যান্ডলিং গুরুত্বপূর্ণ। যদি একটি কোয়েরি ব্যর্থ হয়, সেক্ষেত্রে আমরা ট্রানজ্যাকশনটি রোলব্যাক করি যাতে ডেটাবেসের কোনো অনিচ্ছাকৃত পরিবর্তন না হয়।

পিএইচপি ত্রুটি হ্যান্ডলিং: পিএইচপিতে try-catch ব্লক ব্যবহার করে ত্রুটি হ্যান্ডলিং করা হয়। যদি কোনও কোয়েরি ব্যর্থ হয়, তাহলে এটি একটি এক্সেপশন (Exception) ছুঁড়ে ফেলবে এবং সেই এক্সেপশন ক্যাচ করার মাধ্যমে আমরা ট্রানজ্যাকশন রোলব্যাক করতে পারি।

গুরুত্বপূর্ণ বিষয়াবলী

  • ট্রানজ্যাকশন শুরু করা: $conn->begin_transaction(); এই কমান্ড দিয়ে ট্রানজ্যাকশন শুরু হয়।
  • কোয়েরি এক্সিকিউট করা: একাধিক SQL কোয়েরি একসাথে $conn->query(); দিয়ে এক্সিকিউট করা হয়।
  • রোলব্যাক (Rollback): যদি কোনো ত্রুটি ঘটে, তাহলে $conn->rollback(); ব্যবহার করে সব পরিবর্তন রোলব্যাক করা হয়।
  • কমিট (Commit): সমস্ত কোয়েরি সফলভাবে এক্সিকিউট হলে $conn->commit(); দিয়ে ট্রানজ্যাকশন কমিট করা হয়।

পিএইচপি এবং মাইএসকিউএল দিয়ে মাল্টি-কোয়েরি ট্রানজ্যাকশন ব্যবহার করার ফলে কোডে আরও কার্যকরী ত্রুটি হ্যান্ডলিং এবং ডেটাবেসের অখণ্ডতা নিশ্চিত করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...